package com.itheima.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;

/**
 * @Bean:
 *      位置：标记在方法上
 *      作用：把方法的返回值自动存入到IOC容器中(等同于 <bean id="" class="">)
 *      属性：value ，指定对应的id
 *
 * @Value:
 *      位置：标记在属性，方法上
 *      作用：给简单(四类八种，String)类型属性赋值 , 可以使用 ${} 引用属性文件中的值
 */
public class JdbcConfig {
    /**
     * @Value() 标记在属性上,可以给简单类型属性赋值
     */
    @Value("${jdbc.driver}")
    private String driverClassName;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;

    /**
     * 通过方法创建数据源对象
     *
     * @Bean 标记在方法上,会将该方法的返回值 存入到IOC容器中
     *  value属性相当于Bean标签的id 可省略
     */
    @Bean("dataSource")
    public DruidDataSource createDataSource(){
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName(driverClassName);
        druidDataSource.setUrl(url);
        druidDataSource.setUsername(username);
        druidDataSource.setPassword(password);

        return druidDataSource;
    }
}
